//package com.itheima.sevice.impl;//package com.itheima.controller.backend.security;
//
//import com.itheima.pojo.Permission;
//import com.itheima.pojo.Role;
//import com.itheima.pojo.User;
//import com.itheima.sevice.UserService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.core.GrantedAuthority;
//import org.springframework.security.core.authority.AuthorityUtils;
//import org.springframework.security.core.authority.SimpleGrantedAuthority;
//import org.springframework.security.core.userdetails.UserDetails;
//import org.springframework.security.core.userdetails.UserDetailsService;
//import org.springframework.security.core.userdetails.UsernameNotFoundException;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Set;
//import java.util.stream.Collectors;
//
//@Service
//public class SpringSecurityUserServiceImpl implements UserDetailsService {
//    //查找服务，实现查询数据库
//    @Autowired
//    private UserService userService;
//
//    //根据用户名查询数据库中用户信息
//    @Override
//    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//        // 从数据库中查询用户
//        User user = userService.loadUserByUsername(username);
//        if (user == null) {
//            throw new UsernameNotFoundException("用户不存在！");
//        }
//        // 查询用户的角色
//        Set<Role> roles = userService.loadRolesByUserId(user.getId());
//
//        // 把角色转换成数组
//        String[] roleCodes = roles.stream()
//                .map(Role::getKeyword)
//                .collect(Collectors.toList())
//                .toArray(new String[0]);
//        AuthorityUtils.createAuthorityList(roleCodes);
//
//        // 设置用户的权限
//        user.setRoles(roles);
//        return (UserDetails) user;
//    }
//}